/*
* The MIT License (MIT)
*
* Copyright (c) 2014 México Abierto
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* For more information visit https://github.com/mxabierto/avisos.
*/
package mx.org.cedn.avisosconagua.mongo;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Script para actualizar la base, invocar con:
* java -cp target/dependency/mongo-java-driver-2.11.4.jar:target/classes/ mx.org.cedn.avisosconagua.mongo.UpdateIssueDate
*
* Script to update database, to run:
* java -cp target/dependency/mongo-java-driver-2.11.4.jar:target/classes/ mx.org.cedn.avisosconagua.mongo.UpdateIssueDate
* @author serch
*/
public class UpdateIssueDate {
public static void main(String[] arg) throws Exception {
MongoClientURI mongoClientURI = new MongoClientURI(System.getenv("MONGOHQ_URL"));
MongoClient mongoClient = new MongoClient(mongoClientURI);
DB mongoDB = mongoClient.getDB(mongoClientURI.getDatabase());
String GENERATED_COL = "GeneratedFiles";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
SimpleDateFormat isoformater = new SimpleDateFormat("YYYY-MM-dd HH:mm");
if (null != mongoClientURI.getUsername()) {
mongoDB.authenticate(mongoClientURI.getUsername(), mongoClientURI.getPassword());
}
DBCollection col = mongoDB.getCollection(GENERATED_COL);
DBCursor cursor = col.find();
for (DBObject obj : cursor) {
String date = (String) obj.get("issueDate");
Date fec = null;
try {
fec = sdf.parse(date);
} catch (ParseException npe) {
}
if (null != fec) {
date = isoformater.format(fec);
DBObject act = col.findOne(obj);
obj.put("issueDate", date);
col.update(act,obj);
}
}
}
}
// ArrayList<String>lista=getInstance().listPublishedAdvices(100);
// ArrayList<String>newList = new ArrayList<>();
// DBCollection col = getInstance().mongoDB.getCollection(GENERATED_COL);
// for (String id: lista){
// newList.add(Utils.getISODate((String)getInstance().getPublishedAdvice(id).get("issueDate"))+" "+id);
// BasicDBObject bdbo =(BasicDBObject)col.findOne(new BasicDBObject(INTERNAL_FORM_ID, id));
// bdbo.append("issueDate", Utils.getISODate(bdbo.getString("issueDate")));
//
// mongoDB.getCollection(GENERATED_COL).findOne(new BasicDBObject(INTERNAL_FORM_ID, adviceId))
//
// System.out.println("id:"+id+" "+Utils.getISODate((String)getInstance().getPublishedAdvice(id).get("issueDate")));
// }
// Collections.sort(newList);
// Collections.reverse(newList);
// for(String id:newList){
// System.out.println("id: "+ id);
// }